package com.nereyda.application.locators
{
	import com.nereyda.view.MainMenu;
	import com.nereyda.view.panels.Login;
	
	/**
	 * En esta clase se colocarán todos los datos que sean
	 * necesarios compartir dentro de la aplicación, y que
	 * no formen parte de los datos devueltos por el server.
	 */
	public class AppLocator
	{
		/**
		 * Menú de gadgets y secciones.
		 */
		[Bindable]
		public var mainMenu :MainMenu = null;

		/**
		 * Sección de login activa.
		 */
		[Bindable]
		public var loginSection :Login = null;

		/**
		 * Pantalla principal de la aplicación.
		 */
		[Bindable]
		public var desktop :Nereyda = null;
		
		/**
		 * Determina si el usuario inició sesión correctamente.
		 * En el caso de ser verdadero, se mostrará el escritorio
		 * y se cargaran todas las opciones del usuario logoneado.
		 */
		[Bindable]
		public var loginSucess :Boolean = false;

		/**
		 * Item seleccionado en el árbol de categorías de la agenda.
		 */
		[Bindable]
		public var calendarSelItem :Object = null;

		/**
		 * Las siguientes clases indicarán los iconos para carpetas
		 * cerradas y abiertas en distintos sectores de la aplicación.
		 */
		[Bindable]
		[Embed( "assets/icons/current/general/folder.png" )]
		
		public var folderClosedIcon:Class;

		[Bindable]
		[Embed( "assets/icons/current/general/folder_open.png" )]
		
		public var folderOpenIcon:Class;

		// Devuelve una instancia única de la clase.
		//
		private static var instance :AppLocator = null;
		
		public static function getInstance():AppLocator
		{
			if ( instance == null )
				instance = new AppLocator();
			
			return( instance );
		}
	}
}